SPB Git forge

spb/spb-cloud

Public
10commits 1branches 0releases
3.2 MBsize
maindefault branch
yesterdaylast push
JavaScript 56.7% TypeScript 42.6%
1.0 KB · 37 lines typescript
Raw Blame History
1import { NextRequest, NextResponse } from "next/server";2import { prisma } from "@/lib/prisma";3import { existsSync, readFileSync } from "fs";4import path from "path";5import mime from "mime-types";67const AVATARS_DIR = path.join(process.env.UPLOAD_DIR || "./uploads", "avatars");89export async function GET(10  _request: NextRequest,11  { params }: { params: { id: string } }12) {13  const user = await prisma.user.findUnique({14    where: { id: params.id },15    select: { avatarPath: true },16  });1718  if (!user || !user.avatarPath) {19    return NextResponse.json({ error: "Avatar introuvable" }, { status: 404 });20  }2122  const fullPath = path.join(AVATARS_DIR, user.avatarPath);23  if (!existsSync(fullPath)) {24    return NextResponse.json({ error: "Fichier avatar introuvable" }, { status: 404 });25  }2627  const buffer = readFileSync(fullPath);28  const mimeType = mime.lookup(user.avatarPath) || "image/png";2930  return new NextResponse(buffer, {31    headers: {32      "Content-Type": mimeType,33      "Cache-Control": "public, max-age=3600",34    },35  });36}37